﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Collections;
using DTO;

namespace DAO
{
    public class DichVuDAO
    {
        /// <summary>
        /// Lay danh sach tat ca dich vu
        /// </summary>
        /// <returns></returns>
        /// <proc>sp_DichVu_layTatCaDanhSachDichVu</proc>
        public List<DichVuDTO> layDanhSachDichVu()
        {
            try
            {
                DataTable dt = DataProvider.ExecuteStoreProc("sp_DichVu_layTatCaDanhSachDichVu", null, null);
                if (dt.Rows.Count == 0)
                {
                    return null;
                }
                List<DichVuDTO> dvLst = new List<DichVuDTO>();
                for(int i=0; i< dt.Rows.Count; i++)
                {
                    DichVuDTO dv = new DichVuDTO();
                    dv.GhiChu = dt.Rows[i]["DichVu"].ToString();
                    dv.GiaBan = int.Parse(dt.Rows[i]["GiaBan"].ToString());
                    dv.GiaBanTrucTiep = int.Parse(dt.Rows[i]["GiaBanTrucTiep"].ToString());
                    dv.GiaMua = int.Parse(dt.Rows[i]["GiaMua"].ToString());
                    dv.LoaiDichVu = dt.Rows[i]["LoaiDichVu"].ToString();
                    dv.MaDichVu = dt.Rows[i]["MaDichVu"].ToString();
                    dv.MaNCC = dt.Rows[i]["MaNCC"].ToString();
                    dv.TenDichVu = dt.Rows[i]["TenDichVu"].ToString();
                    dv.MaDVBenNCC = dt.Rows[i]["MaDVBenNCC"].ToString();
                    dv.HinhAnh = dt.Rows[i]["HinhAnh"].ToString();
                    dv.DonVi = dt.Rows[i]["DonVi"].ToString();
                    dvLst.Add(dv);
                }
                return dvLst;
            }
            catch (Exception ex)
            {
                throw ex;
            }            
        }

        /// <summary>
        /// Lay danh sach dich vu theo loai dich vu
        /// </summary>
        /// <returns>List - DichVuDTO</returns>
        /// <proc>sp_DichVu_layDanhSachDichVuTheoLoaiDV</proc>
        public List<DichVuDTO> layDanhSachDichVu(string loaidv)
        {
            List<string> paraLst = new List<string>();
            ArrayList valueArr = new ArrayList();
            paraLst.Add("@loaidv");
            valueArr.Add(loaidv);

            try
            {
                DataTable dt = DataProvider.ExecuteStoreProc("sp_DichVu_layDanhSachDichVuTheoLoaiDV", paraLst, valueArr);
                if (dt.Rows.Count == 0)
                {
                    return null;
                }
                List<DichVuDTO> dvLst = new List<DichVuDTO>();
                for(int i=0; i< dt.Rows.Count; i++)
                {
                    DichVuDTO dv = new DichVuDTO();
                    dv.GhiChu = dt.Rows[i]["DichVu"].ToString();
                    dv.GiaBan = int.Parse(dt.Rows[i]["GiaBan"].ToString());
                    dv.GiaBanTrucTiep = int.Parse(dt.Rows[i]["GiaBanTrucTiep"].ToString());
                    dv.GiaMua = int.Parse(dt.Rows[i]["GiaMua"].ToString());
                    dv.LoaiDichVu = dt.Rows[i]["LoaiDichVu"].ToString();
                    dv.MaDichVu = dt.Rows[i]["MaDichVu"].ToString();
                    dv.MaNCC = dt.Rows[i]["MaNCC"].ToString();
                    dv.TenDichVu = dt.Rows[i]["TenDichVu"].ToString(); 
                    dv.MaDVBenNCC = dt.Rows[i]["MaDVBenNCC"].ToString();
                    dv.HinhAnh = dt.Rows[i]["HinhAnh"].ToString();
                    dv.DonVi = dt.Rows[i]["DonVi"].ToString();
                    dvLst.Add(dv);
                }
                return dvLst;
            }
            catch (Exception ex)
            {
                throw ex;
            }       
        }

        /// <summary>
        /// Lay danh sach dich vu theo ma nha cung cap
        /// </summary>
        /// <param name="ncc"></param>
        /// <returns></returns>
        /// <proc>sp_DichVu_layDanhSachDichVuTheoMaNCC</proc>
        public List<DichVuDTO> layDanhSachDichVuTheoNCC(string maNCC)
        {
            List<string> paraLst = new List<string>();
            ArrayList valueArr = new ArrayList();
            paraLst.Add("@mancc");
            valueArr.Add(maNCC);

            try
            {
                DataTable dt = DataProvider.ExecuteStoreProc("sp_DichVu_layDanhSachDichVuTheoMaNCC", paraLst, valueArr);
                if (dt.Rows.Count == 0)
                {
                    return null;
                }
                List<DichVuDTO> dvLst = new List<DichVuDTO>();
                for(int i=0; i< dt.Rows.Count; i++)
                {
                    DichVuDTO dv = new DichVuDTO();
                    dv.GhiChu = dt.Rows[i]["DichVu"].ToString();
                    dv.GiaBan = int.Parse(dt.Rows[i]["GiaBan"].ToString());
                    dv.GiaBanTrucTiep = int.Parse(dt.Rows[i]["GiaBanTrucTiep"].ToString());
                    dv.GiaMua = int.Parse(dt.Rows[i]["GiaMua"].ToString());
                    dv.LoaiDichVu = dt.Rows[i]["LoaiDichVu"].ToString();
                    dv.MaDichVu = dt.Rows[i]["MaDichVu"].ToString();
                    dv.MaNCC = dt.Rows[i]["MaNCC"].ToString();
                    dv.TenDichVu = dt.Rows[i]["TenDichVu"].ToString();
                    dv.MaDVBenNCC = dt.Rows[i]["MaDVBenNCC"].ToString();
                    dv.HinhAnh = dt.Rows[i]["HinhAnh"].ToString();
                    dv.DonVi = dt.Rows[i]["DonVi"].ToString();
                    dvLst.Add(dv);
                }
                return dvLst;
            }
            catch (Exception ex)
            {
                throw ex;
            }       
        }
    }
}
